package com.docking.heylo.service;


import com.docking.heylo.dao.entity.Post;
import com.docking.heylo.pojo.Aperture;

import java.util.List;
import java.util.Map;

public interface ICacheService {

    /***
     * 写入一个元素到缓存
     *
     * @param key
     * @param value
     * @param ttl
     */
    public void put(String key, Object value, long ttl);

    /***
     * 读取一个元素
     *
     * @param key
     * @return
     */
    public Map<String, Object> get(String key);


    /***
     * 发送短信验证码
     *
     * @param ip
     * @param phone
     */
    public void sendSmsVerCode(String ip, String phone, String verCode);


    String getSmsVerCode(String phone);

    /***
     * 写入作品到缓存中
     *
     * @param post      作品信息
     * @param type      作者类型 [1摄影师、2模特、3大A]
     */
    void pushPost(Post post, Integer type);


    /***
     * 获取作品集合
     *
     * @return
     */
    List<Aperture> apertureIndex();


    /***
     * 在缓存中删除一个元素
     *
     * @param cacheName
     * @param key
     */
    void removeCache(String cacheName, Object key);

    /***
     * 喜欢一个作品
     * @param userId
     */
    void postLike(Integer userId, boolean like);


    void postComment(Integer userId);

    /**
     * 移除一个作品
     *
     * @param param
     */
    void post_remove(Map<String, Object> param);

    /***
     * 获取一个作品
     *
     * @param userId
     * @return
     */
    Aperture getAperture(Integer userId);



}
